package com.bige.mall.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.bige.common.annotation.Excel;
import com.bige.common.core.domain.BaseEntity;

/**
 * 商品对象 mall_product
 * 
 * @author bige
 * @date 2022-01-23
 */
@ApiModel(value = "MallProduct", description = "商品实体")
public class MallProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 商品Id */
    @ApiModelProperty("商品Id")
    private Long productId;

    /** 商品名 */
    @ApiModelProperty("商品名")
    @Excel(name = "商品名")
    private String productName;

    /** 商品首图 */
    @ApiModelProperty("商品首图1")
    @Excel(name = "商品首图")
    private String firstImg;

    /** 商品图 */
    @ApiModelProperty(value = "商品图片", required = true)
    private List<MallProductImgs> mallProductImgs;

    /** 品牌 */
    @ApiModelProperty("品牌")
    @Excel(name = "品牌")
    private Long brandId;

    /** 标签 */
    @ApiModelProperty("标签")
    @Excel(name = "标签")
    private Long labelId;

    /** 邮费模板 */
    @ApiModelProperty("邮费模板")
    @Excel(name = "邮费模板")
    private Long templateId;

    /** 一级品类 */
    @ApiModelProperty("一级品类")
    @Excel(name = "一级品类")
    private Long firstCategoryId;

    /** 二级品类 */
    @ApiModelProperty("二级品类")
    @Excel(name = "二级品类")
    private Long secondCategoryId;

    /** 三级品类 */
    @ApiModelProperty("三级品类")
    @Excel(name = "三级品类")
    private Long thirdCategoryId;

    /** 供应商 */
    @ApiModelProperty("供应商")
    @Excel(name = "供应商")
    private Long supplierId;

    /** 商品规格 */
    @ApiModelProperty("商品规格")
    private List<MallProductStandard> mallProductStandards;

    /** 商品明细 */
    @ApiModelProperty("商品明细")
    private List<MallGoods> mallGoods;

    /** 真实销量 */
    @ApiModelProperty("真实销量")
    @Excel(name = "真实销量")
    private Long saleNum;

    /** 虚拟销量 */
    @ApiModelProperty("虚拟销量")
    @Excel(name = "虚拟销量")
    private Long virtualNum;

    /** 视频链接 */
    @ApiModelProperty("视频链接")
    @Excel(name = "视频链接")
    private String productVideo;

    /** 库存 */
    @ApiModelProperty("库存")
    @Excel(name = "库存")
    private Long totalNum;

    /** 商品价格 */
    @ApiModelProperty("商品价格")
    @Excel(name = "商品价格")
    private BigDecimal salePrice;

    /** 划线价 */
    @ApiModelProperty("划线价")
    @Excel(name = "划线价")
    private BigDecimal linePrice;

    /** 发货地 */
    @ApiModelProperty("发货地")
    @Excel(name = "发货地")
    private String origin;

    /** 邮费类型 0:包邮，1：自费 */
    @ApiModelProperty("邮费类型 0:包邮，1：自费")
    @Excel(name = "邮费类型 0:包邮，1：自费")
    private String postage;

    /** 状态 0上架 1下架 */
    @ApiModelProperty("状态 0上架 1下架")
    @Excel(name = "状态 0上架 1下架")
    private String status;

    /** 审核状态 0审核中 1通过 2不通过 */
    @ApiModelProperty("审核状态 0审核中 1通过 2不通过")
    @Excel(name = "审核状态 0审核中 1通过 2不通过")
    private String auditStatus;

    /** 发票  0：可开，1：不可开 */
    @ApiModelProperty("发票  0：可开，1：不可开")
    @Excel(name = "发票  0：可开，1：不可开")
    private String invoiceStatus;

    /** 详情 */
    @ApiModelProperty("详情")
    @Excel(name = "详情")
    private String details;

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getFirstImg() {
        return firstImg;
    }

    public void setFirstImg(String firstImg) {
        this.firstImg = firstImg;
    }

    public List<MallProductImgs> getMallProductImgs() {
        return mallProductImgs;
    }

    public void setMallProductImgs(List<MallProductImgs> mallProductImgs) {
        this.mallProductImgs = mallProductImgs;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public Long getLabelId() {
        return labelId;
    }

    public void setLabelId(Long labelId) {
        this.labelId = labelId;
    }

    public Long getTemplateId() {
        return templateId;
    }

    public void setTemplateId(Long templateId) {
        this.templateId = templateId;
    }

    public Long getFirstCategoryId() {
        return firstCategoryId;
    }

    public void setFirstCategoryId(Long firstCategoryId) {
        this.firstCategoryId = firstCategoryId;
    }

    public Long getSecondCategoryId() {
        return secondCategoryId;
    }

    public void setSecondCategoryId(Long secondCategoryId) {
        this.secondCategoryId = secondCategoryId;
    }

    public Long getThirdCategoryId() {
        return thirdCategoryId;
    }

    public void setThirdCategoryId(Long thirdCategoryId) {
        this.thirdCategoryId = thirdCategoryId;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public List<MallProductStandard> getMallProductStandards() {
        return mallProductStandards;
    }

    public void setMallProductStandards(List<MallProductStandard> mallProductStandards) {
        this.mallProductStandards = mallProductStandards;
    }

    public List<MallGoods> getMallGoods() {
        return mallGoods;
    }

    public void setMallGoods(List<MallGoods> mallGoods) {
        this.mallGoods = mallGoods;
    }

    public Long getSaleNum() {
        return saleNum;
    }

    public void setSaleNum(Long saleNum) {
        this.saleNum = saleNum;
    }

    public Long getVirtualNum() {
        return virtualNum;
    }

    public void setVirtualNum(Long virtualNum) {
        this.virtualNum = virtualNum;
    }

    public String getProductVideo() {
        return productVideo;
    }

    public void setProductVideo(String productVideo) {
        this.productVideo = productVideo;
    }

    public Long getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(Long totalNum) {
        this.totalNum = totalNum;
    }

    public BigDecimal getSalePrice() {
        return salePrice;
    }

    public void setSalePrice(BigDecimal salePrice) {
        this.salePrice = salePrice;
    }

    public BigDecimal getLinePrice() {
        return linePrice;
    }

    public void setLinePrice(BigDecimal linePrice) {
        this.linePrice = linePrice;
    }

    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String origin) {
        this.origin = origin;
    }

    public String getPostage() {
        return postage;
    }

    public void setPostage(String postage) {
        this.postage = postage;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(String auditStatus) {
        this.auditStatus = auditStatus;
    }

    public String getInvoiceStatus() {
        return invoiceStatus;
    }

    public void setInvoiceStatus(String invoiceStatus) {
        this.invoiceStatus = invoiceStatus;
    }

    public String getDetails() {
        return details;
    }

    public void setDetails(String details) {
        this.details = details;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("firstImg", getFirstImg())
            .append("brandId", getBrandId())
            .append("labelId", getLabelId())
            .append("templateId", getTemplateId())
            .append("firstCategoryId", getFirstCategoryId())
            .append("secondCategoryId", getSecondCategoryId())
            .append("thirdCategoryId", getThirdCategoryId())
            .append("supplierId", getSupplierId())
            .append("saleNum", getSaleNum())
            .append("virtualNum", getVirtualNum())
            .append("productVideo", getProductVideo())
            .append("totalNum", getTotalNum())
            .append("salePrice", getSalePrice())
            .append("linePrice", getLinePrice())
            .append("origin", getOrigin())
            .append("postage", getPostage())
            .append("status", getStatus())
            .append("auditStatus", getAuditStatus())
            .append("invoiceStatus", getInvoiceStatus())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("details", getDetails())
            .toString();
    }
}
